Storage controllers typically include one submission queue per physical port that connects a client to the storage controller. In order to process I/O requests, the storage controller includes logic to schedule and execute the I/O requests received through the submission queues. Since all requests from a particular client are received through the submission queue for that client's physical port, the re-ordering and scheduling of I/O requests is solely handled by the storage controller after the I/O requests are submitted.